<?php

/**
*	Obtiene todos los servicios en estado publicado (estado=1) con idioma y si no existe el idioma selecciona otro 
*   api_key: Api proporcionada por somxarxa para el hotel
* 	id_hotel: Identificador del hotel
* 	idioma: Idioma para obtener la info [0,1,2]
*/
function getOfertas() {
	global $app;
	$app->getLog()->info("getOfertas");

	$api_key = getAPIKey();
	$id_hotel = getIdHotel();
	
	if(!isValidAPIKey($id_hotel, $api_key)){
		$app->getLog()->error("API_KEY ERROR: " . $id_hotel . " API_KEY: " . $api_key);
		echo '{"error":{"text":'. ERROR_API_KEY .'}}'; 
		return -1;
	}
	
	$idioma = getIdioma();

	$sql_traduccion = "(SELECT * FROM " . TABLA_OFERTA . " oferta1, " . TABLA_OFERTA_LOCALE . " oferta1loc WHERE oferta1.id = oferta1loc.id_oferta and oferta1.id_hotel = :id_hotel and oferta1loc.id_idioma = :idioma)";
	$sql_sin_traduccion = "(SELECT * FROM " . TABLA_OFERTA . " oferta2, " . TABLA_OFERTA_LOCALE . " oferta2loc WHERE oferta2.id = oferta2loc.id_oferta and oferta2.id_hotel = :id_hotel and NOT EXISTS (SELECT * FROM " . TABLA_OFERTA . " oferta_sub, " . TABLA_OFERTA_LOCALE . " ofertaloc_sub WHERE oferta2.id = oferta2loc.id_oferta and oferta2.id = oferta_sub.id and oferta2.id = ofertaloc_sub.id_oferta and oferta_sub.id_hotel = :id_hotel and ofertaloc_sub.id_idioma = :idioma) GROUP BY(oferta2.id))";

	$sql = $sql_traduccion . " UNION " . $sql_sin_traduccion . " ORDER BY ultima_notificacion DESC LIMIT 50";
	try {
		$db = getConnection();
		$stmt = $db->prepare($sql);
		$stmt->bindParam("idioma", $idioma);
		$stmt->bindParam("id_hotel", $id_hotel);
		$stmt->execute();
		$ofertas = $stmt->fetchAll(PDO::FETCH_OBJ);
		$db = null;
		echo $_GET['callback']."(".json_encode($ofertas).");";
		
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

//Obtenemos una Oferta en concreto con su id
//TODO: De momento no se va a usar, y no le pasamos estado y el idioma que se le pasa
//ya que previamente se ha debido de obtener en la app
function getOferta($id) {
	global $app;
	$app->getLog()->info("getOferta: " . $id);

	$api_key = getAPIKey();
	$id_hotel = getIdHotel();
	
	if(!isValidAPIKey($id_hotel, $api_key)){
		$app->getLog()->error("API_KEY ERROR: " . $id_hotel . " API_KEY: " . $api_key);
		echo '{"error":{"text":'. ERROR_API_KEY .'}}'; 
		return -1;
	}
	
	$idioma = getIdioma();
	
	$sql = "SELECT * FROM " . TABLA_OFERTA . " oferta, " . TABLA_OFERTA_LOCALE . " oferta_loc WHERE oferta.id = oferta_loc.id_oferta and oferta.id_hotel = :id_hotel and oferta_loc.id_idioma =:idioma and oferta.id=:id";
	try {
		$db = getConnection();
		$stmt = $db->prepare($sql);  
		$stmt->bindParam("id", $id);
		$stmt->bindParam("idioma", $idioma);
		$stmt->bindParam("id_hotel", $id_hotel);
		$stmt->execute();
		$oferta = $stmt->fetchObject();  
		$db = null;
		echo $_GET['callback']."(".json_encode($oferta).");";
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

//Obtenemos las galeria de una Oferta
function getOfertaGaleria($id) {
	global $app;
	$app->getLog()->info("getOfertaGaleria: " . $id);

	$api_key = getAPIKey();
	$id_hotel = getIdHotel();
	
	if(!isValidAPIKey($id_hotel, $api_key)){
		$app->getLog()->error("API_KEY ERROR: " . $id_hotel . " API_KEY: " . $api_key);
		echo '{"error":{"text":'. ERROR_API_KEY .'}}'; 
		return -1;
	}
	
	$idioma = getIdioma();
	
	$sql = "SELECT * FROM " . TABLA_OFERTA_GALERIA . " oferta, " . TABLA_OFERTA_GALERIA_LOCALE . " oferta_loc WHERE oferta.id = oferta_loc.id_oferta_galeria and oferta_loc.id_idioma =:idioma and oferta.id_oferta=:id";
	try {
		$db = getConnection();
		$stmt = $db->prepare($sql);  
		$stmt->bindParam("id", $id);
		$stmt->bindParam("idioma", $idioma);
		$stmt->execute();
		$galeria = $stmt->fetchAll(PDO::FETCH_OBJ);
		$db = null;
		echo $_GET['callback']."(".json_encode($galeria).");";
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

?>